//队列的封装
function Queue() {
  // 属性
  this.item = [];
  // 方法
  //1.将元素加入到队列中
  Queue.prototype.enqueue = function (element) {
    return this.item.push(element);
  };
  //2.从队列中删除前端元素
  Queue.prototype.dequeue = function () {
    // 删除数组第一个元素,所以性能不高
    return this.item.shift();
  };
  //3.查看前端的元素
  Queue.prototype.front = function () {
    return this.item[0];
  };
  //4.查看队列是否为空
  Queue.prototype.isEmpty = function () {
    return this.item.length == 0;
  };
  //5.查看队列中元素的个数
  Queue.prototype.size = function () {
    return this.item.length;
  };
  //6.toString方法
  Queue.prototype.toString = function () {
    let resultString = "";
    for (let i = 0; i < this.item.length; i++) {
      resultString += this.item[i] + " ";
    }
    return resultString;
  };
}

// 实例一个队列
let queue = new Queue();

// 测试使用
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
console.log(queue);
console.log(queue.toString());
console.log("队列前端元素: ", queue.front());

// 删除前端元素
queue.dequeue();

console.log(queue);
console.log(queue.toString());
